WinTVC - Videoton TV Computer emultor

 2004-2014, 2017-2023 Grsz Attila (gyros KUKAC freemail PONT hu)


Mi a WinTVC?
============

Emultor, olyan program, ami egy adott hardver (jelen esetben
szmtgp) mkdst imitlja egy msik tpus hardveren.
Ebben a konkrt esetben egy 8-bites magyar mikroszmtgpet
emullunk PC hardveren fut Windows opercis rendszeren, ami pillanatnyilag 
32 vagy 64-bites.

A TVC volt az utols magyar mikroszmtgp, melyet az Enterprise-t kifejleszt 
angol gp licensze alapjn a jobb idket is meglt Videoton gyrtott. A gp processzora 
az igen npszer Zilog 80. Ezen s a CRTC chip-en kvl a gp semmilyen cl-IC-t nem 
tartalmazott, a fbb vezrlsi feladatokat TTL-ekkel oldottk meg.

Tovbbi informcikrt, programokrt s az emultor j verziirt rdemes 
megltogatni a http://tvc.homeserver.hu vagy a http://gaia.atilia.eu weboldalakat.


A WinTVC emultor kpessgei
==============================

- teljes, ciklusra pontos Z80 emulci
- kzel teljes, ciklus alap CRTC 6845 video IC emulci
- els s msodik sorozat, 32kb, 64kb s 64kb+ tpusok tmogatsa
- hang s kurzor megszakts emulcija
- az 1 csatorns hang ramkr emulcija
- a teljes billentyzet, a beptett joystick s a RESET gomb emulcija
- a lemezes CAS formtum kzvetlen s FILE I/O ROM-on keresztli beolvassa/mentse
- WAV s TTP kazetta formtumok rsa/olvassa
- teljes lemezegysg s WD1793 diszk kontroller emulci, DSK image rs/olvass
- egyszer PAL TV emulci
- egyszer printer tmogats

Az emultor kpes kezelni az UPM (specilis CP/M) rendszert az eredeti interface
krtya ROM s a megfelel krtyacsatlakoz ROM mentsnek illesztse utn.
Ugyanez igaz az MS-DOS 3 kompatibilis VT-DOS-ra is.

A WinTVC emultor hinyossgai
===============================

- utasts alap, de ciklusra pontos emulci
- clock stretching nincs teljesen pontosan implementlva
- WD1793 diszk kontroller emulcija nem ciklusra pontos

A program hasznlata
====================

Futtats
--------

A futtatshoz Windows opercis rendszer (legalbb Windows 95)
kell. Installls nem szksges, indtshoz klikk az EXE-re. 
A menk remlhetleg magukrt beszlnek.


Parancssori opcik
------------------

ltalnos alak:

WinTVC.EXE [/c filenv] [/d filenv] [/a] [/c] [/f] [/h] [/i filenv] [/m] [/w] [/x]

Jelenleg a kvetkez opcik vannak tmogatva:

/a        : kiad egy LOAD"filenv" parancsot, amit lemezen lv fjlok 
            automatikus betltsre hasznlhatunk. Ha nem adunk meg 
            filenevet akkor a load"*" hajtdik vgre ami betlti az els 
            fjlt amit megtall
/c        : cartridge betltse indtskor
/d        : diszk csatolsa indtskor (A:)
/f        : fekete fehr kp
/h        : hang tiltsa indtskor (problma esetn javasolt)
/i        : I/O krtya csatolsa indtskor
/m        : tpus lltsa (/m32 /m64 /m64+ /m64c)
/w        : emultor futtatsa a maximlis sebessggel
/x        : DirectX tiltsa (problma esetn javasolt)


Monitor
-------

A programban egy egyszer beptett monitor es disassembler is 
tallhat. Ennek elhvsa az ESC[-APE] gomb lenyomsval trtnik.
Msodik letsre a program visszatr az emullt gp kpernyjhez.
Tovbbi monitorkezel gombok:

F1        : Disassembly lista az IP aktulis rtktl kezdve.
            A kp tetejn a fontosabb regiszterek tartalma lthat.
F2        : Az emullt gp memriatartalom trkpe
ENTER     : Egy assembly utasts lptetse.
PAGE UP   : Oldal lapozsa visszafel
PAGE DOWN : Oldal lapozsa elrefel
FEL-NYL  : Egy sor lapozsa visszafel
LE-NYL   : Egy sor lapozsa elrefel


Billentyzet
------------

Ktfle billentykioszts vlaszthat, az egyik a pozcionlis, amelyik a
TVC billentyinek pozciit kpezi le a PC billentyzetre, a msik a
szimbolikus, amelyik a magyar PC-s billentyzet-kiosztst kveti, s az
azoknak megfelel TVC-s billenyletseket szimullja. Elbbi akkor hasznos,
ha jtkoknl fontos a helyes elrendezs, utbbi pedig akkor, ha programozunk,
vagy fontos a kvnt szimblumok gyors megtallsa.

Fontos kivtelek a szimbolikus kiosztsnl:
- az  s  betk rendre az AltGr+i illetve az AltGr+j -vel rhetk el
- a 102 gombos keyboard-okon a '<' jel az AltGr+m -re mappeldik
- az ESC billenty az END gombon kapott helyet
- az ALT billenty a HOME gombon kapott helyet
- a PC-s Backspace ekvivalens a TVC-s SHIFT + DEL-lel

A TVC-s joystick(ok) emulcija a PC billentyzeten keresztl trtnik.

Beptett botkormny: kurzor nyilak, tz: NumPad0
Msodik botkormny: numerikus billentyzet, tz: NumPad+

Lemez
-----

A legrugalmasabb s leggyorsabb perifria. A tbbrszes programok
legknyelmesebb betltst teszi lehetv. A helyes emulcihoz 
szksg van a HBF EPROM I/O interface krtya mentsre, illetve termszetesen 
egy diszk llomnyra. Ezeket csatolni kell az emultorhoz, mieltt nekiltnnk 
a munknak. A DISK I/O krtya (HBF) illesztse a /i parancssori opcival, vagy a 
menn keresztl trtnhet. Ha az emultor knyvtrba msoljuk az I/O krtya 
EPROM mentst HBF.ROM nven, gy az automatikusan csatoldik indulskor.

A jelenleg tmogatott kt lemez image formtum a 360 ill. 720 kb-os DSK (1 ill. 
2 oldalas, dupla rssrsg, 80 svval s svonknt 9, egyenknt 512 byte-os 
szektorral) ami VT-DOS esetn gyakorlatilag azonos az MSX s MS-DOS ltal 
is hasznlt image formtummal, gy az ezekhez kszlt image kezel programok 
(WinImage, DiskMgr, Virtual Floppy stb.) minden tovbbi nlkl hasznlhatak az emultorhoz is.

Az EXT 2 parancs begpelsvel belpnk a BASIC CLI-be, ahol a jrszt MS-DOS 
all is ismert parancsokat adhatjuk ki (pl. FORMAT, DIR stb). BASIC-be 
visszalpni innen az ESC-kel lehet (ami az End billentyre van lltva PC-n).

Magn
-----

A kazetts megnetofon a TVC-hez kapcsolhat legelterjedtebb s ezrt 
legfontosabb perifria. A hozz tartoz PC-s formtumok egyike a WAV 
(tmrtetlen PCM).

Elszr a menn keresztl ltrehozzuk a kvnt WAV llomnyt. 
A SAVE parancs kiadsa utn elkezddik a ments. Ez eltarthat egy darabig. 
A folyamat felgyorsthat ha az emultort az ALT+W billentykkel teljes 
sebessgre kapcsoljuk. Ha jra megjelenik az 'Ok' zenet, a ments befejezdtt. 
Zrjuk le a WAV file-t a menn keresztl (ez nagyon fontos!).

Ezzel a mdszerrel tetszleges betltvel rendelkez llomnyokat is
elmenthetnk s azokat aztn egyszeren transzferlhatjuk az igazi 
TVC-re.

A msik kazetts formtum a TTP, ami az 1.0 emultor verzitl kezdve ltezik. rsa s
olvassa is tmogatott. A WAV-val ellenttben byte szinten trolja a szinkronjelek 
nlkli, kazettra mentett adatokat. ROM csapdkon keresztl az opercis rendszer 
hvsaiba gyazza be magt, ezrt csak a standard ROM-okkal mkdik. A TTP-ket vagy
a WAV-okhoz hasonlan csatoljuk az emultorhoz explicite, vagy a TTP automount
opci bekapcsolsval az aktulis knyvtrban tallhat TTP-ket rtelmezzk 
szalagfolyamknt. Ilyenkor a visszacsvls funkci is a filemutatt az els
TTP-re lltja vissza.

Az emultor tmogatja a magn motorjnak 05h-s porton keresztli s direkt menn keresztli 
vezrlst is (PLAY/RECORD gomb).

Mdiafelvtel
-------------

Az emultor kp s hangkimenete mdiaformtumba irnythat. A hangllomnyok
tmrtetlen 16-bites WAV (PCM) formtumban menthetk el a File men 
megfelel pontjban.

Videofelvtelek ksztse AVI formtumba lehetsges. A gpre teleptett video
codec-ek kzl azok jhetnek szba, amik vagy a 8-bites (GDI, DirectDraw) kpernymdot
tmogatjk (Tmrtetlen, RLE, stb.).

A 32-bites kpmd (Direct3D) kdolsra javasolt kls codec-ek (32 vagy 64-bit) 
verzija meg kell egyezzen az emultor EXE verzijval:

 https://sourceforge.net/projects/x264vfw/files/
 https://www.xvid.com/download/ 

Ksznetnyilvntsok
=====================

* Kiss Kroly: tesztels, honlap, nyaggats ;-)
* Gugi Zoltn: tletek, tesztels, nyaggats ;-)
* Major Tams: DevStudio tmogats, tesztels, nyaggats ;-)
* Lszl Jzsef: trhely
* Majzik Istvn: tippek, tesztels
* Varga Viktor: honlap
* TVC lista s FB csoport tagjai


Verzik
=======

v1.4.0
-------

- interaktv monitor (Alt+M)
- kezetes karakterek tmogatsa a vgasztalon
- SID hangchip tmogats kls DLL segtsgvel (https://github.com/calmopyrin/winresid/releases)
- CRTC emulci javtsa

v1.3.0
-------

- mind a 4 csatolkrtyahely tmogatsa
- TI SN76489 hang IC emulci Multisound s Gamecard krtyn keresztl
- magnhang javtsa
- snapshot javts (ID, 32 s 64 bit kzti kompatibilits)
- $FD prefix disassembly javtsa

v1.2.0
-------

- OpenGL videomd + PAL TV shader
- hardveresen gyorstott billentykezels (DirectInput)
- CRTC emulci javtsa (interrupt, szmllk)
- TV szinkronjelek finomtsa
- video RAM lapozsi hiba javtsa
- pontosabb szinkronizci s sebessgmrs
- teljes kpernys md javtsa
- FF kapcsol javtsa GDI mdban
- AVI video ments javtsa
- GIF kpments javtsa
- parancssori opcik hibjnak javtsa
- egyb hibajavtsok

v1.1.1
-------

- sajt ROM konfigurcik tmogatsa
- RCA kbel emulci
- FILEIO.ROM tmogats
- nem CAS formtum file-ok tmogatsa FILEIO-n keresztl
- video bank regiszter reset fix
- DPI awareness fix Windows 10-hez
- ablakmaximalizls javtsa
- nemstandard HBLANK hossz tmogatsa
- hang interrupt javtsa
- device context memria leak javtsa

v1.1.0
-------

- pixel alap CRTC 6845 emulci hinyz funkciinak ptlsa
- FILE I/O MOPS ROM tmogats CAS file-ok kzvetlen beolvasshoz
- WaveMapper helyett DirectSound hang driver
- emultorablak mentse BMP formtumban
- AVI s WAV ments javtsa
- soralap emulci kivezetse
- dinamikusan linkelt DDRAW.DLL

v1.0.7
-------

- Direct3D driver
- D3D surface mentse PNG formtumban
- teljes kpernys md (Alt+ENTER)
- CRT emulci (rszleges)
- CRT paramterek realtime belltsa (fnyer, kontraszt etc.)
- szvegbeszrs vglaprl (Alt+V)
- kezetes betk javtsa nyomtatsnl
- vltoztathat alaprtelmezett TTP knyvtr
- jabb TTP fixek (megy 2.2 alatt)
- C: s D: meghajtk llapotmentse javtva

v1.0.6
-------

- tovbbi javtsok a hangminsgben
- magnhangok
- tbb sttuszablak zenet

v1.0.5
-------

- pixel alap rasztermd kiterjesztse a teljes kpernyre
- video mentse AVI llomnyba
- hangfelvtel rgztse WAV (16 bit PCM) llomnyba
- opcionlis jobb hangminsg (teljestmny rovsra)
- hibajavtsok (monitor, I/O, GUI)

v1.0.4
-------

- jkelet idztsi hiba javtsa nhny XP alap rendszeren
- TTP formtum kezelsvel kapcsolatos hiba javtsa

v1.0.3
-------

- ngy lemezmeghajt tmogatsa
- vlaszthat pixelre pontos raszter zemmd
- CRTC interlace (csak DirectX s Double Scan bekapcsolsa nlkl)

v1.0.2
-------

- VT DOS tmogats
- 2-es megszaktsi md (im 2) implementcis hiba javtsa

v1.0.1
-------

- WD1793 diszk kontroller kompatibilits javtsa (UPM lemezkezel programok mkdnek)
- llthat sznteltettsg
- javtott prhuzamos printer emulci
- egyb hibajavtsok

v1.0
-----

- TTP; natv byte alap kazetts formtum rsa/olvassa
- 1-bites tape file-ok tmogatsa, konverter (WAV kiterjesztssel)
- PC joystick tmogatsa
- BASIC 2.1 opci
- 32 kB RAM emulcija
- autostart
- drag'n'drop (Ctrl-t nyomva nincs autostart)
- 1-2-3x-os fix ablakmretek
- az emultor opcionlisan httrben is aktv lehet
- PLAY gomb s motor tvvezrls a magnhoz
- Visual C++ 2008-cal s profilerrel fordtva
- XP/Vista theme tmogats
- hibajavtsok (video, magnkezels, irq)

v0.9
-----

- als s fels keret megjelentse
- kpernyablak megnvelsnek tmogatsa
- magnfejlltsi lehetsg
- screenshot kszts
- hibajavtsok

v0.8
-----

- Cirill bets TVC emulcija (Cirill betuk: CAPS LOCK)
- gyors boot opci
- billentyzet-lets szimulci parancssorbl
- emultor snapshot tmogats
- hibajavtsok (Nautilus, Poseidon, Space Invaders)

v0.7
-----

- teljes lemezegysg s WD1793 diszk kontroller emulci
- j parancssori opcik (/C, /D, /I)
- memriatartalom mentse kzvetlenl CAS llomnyba
- vlaszthat szimbolikus billentyzet-kioszts
- llapotsor, magn-szmll s drive ledek
- ROM korrupcis hiba javtsa
- egyb hibajavtsok

v0.6
-----

- parancssori opcik
- javtott CRTC emulci
- javtott paletta
- kezdetleges I/O krtya emulci
- hibajavtsok

v0.5
----

- az els nyilvnos verzi
